package com.alvinlkk.basic.chapter21;

/**
 * 多线程定义runnable任务
 * @ClassName LiftOff
 * @Description 
 * @author alvin
 * @Date 2017年3月23日 下午4:00:43
 * @version 1.0.0
 */
public class LiftOff implements Runnable {
    protected int countDown = 10;
    
    private static int taskCount = 0;
    
    private final int id = taskCount++;
    
    
    public LiftOff() {}
    
    public LiftOff(int countDown) {
        this.countDown = countDown;
    }
    
    public String status() {
        return "#" + id + "(" +
                (countDown > 0 ? countDown : "Liftoff !")
                + "). ";
    }
    
    @Override
    public void run() {
        while(countDown -- > 0) {
            System.out.print(status());
            Thread.yield();    //对线程调度器的一种建议， 可以将cpu从一个线程转移给另一个线程
        }
    }
}
